add retrofit http part

chengzhenyu 8 年之前
父節點
當前提交
57a51b861d
共有 3 個文件被更改,包括 72 次插入0 次删除
  1. 1 0
      app/build.gradle
  2. 54 0
      app/src/main/java/ai/pai/lensman/box/ApiClient.java
  3. 17 0
      app/src/main/java/ai/pai/lensman/box/ApiService.java

+ 1 - 0
app/build.gradle

@@ -42,6 +42,7 @@ dependencies {
42 42
     compile 'com.jakewharton:butterknife:8.2.1'
43 43
     apt 'com.jakewharton:butterknife-compiler:8.2.1'
44 44
     compile 'com.squareup.okhttp3:okhttp:3.4.1'
45
+    compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
45 46
     compile 'com.squareup.retrofit2:retrofit:2.1.0'
46 47
     compile 'com.google.code.gson:gson:2.7'
47 48
     compile 'com.squareup.retrofit2:converter-gson:2.1.0'

+ 54 - 0
app/src/main/java/ai/pai/lensman/box/ApiClient.java

@@ -0,0 +1,54 @@
1
+package ai.pai.lensman.box;
2
+
3
+import com.google.gson.GsonBuilder;
4
+
5
+import java.io.IOException;
6
+import java.util.concurrent.TimeUnit;
7
+
8
+import ai.pai.lensman.BuildConfig;
9
+import okhttp3.Interceptor;
10
+import okhttp3.OkHttpClient;
11
+import okhttp3.Request;
12
+import okhttp3.Response;
13
+import okhttp3.logging.HttpLoggingInterceptor;
14
+import retrofit2.Retrofit;
15
+import retrofit2.converter.gson.GsonConverterFactory;
16
+
17
+public final class ApiClient {
18
+
19
+    private static final String BASE_URL = "";
20
+
21
+    private static final OkHttpClient client = new OkHttpClient.Builder()
22
+            .retryOnConnectionFailure(true)
23
+            .connectTimeout(10, TimeUnit.SECONDS)
24
+            .addInterceptor(createUserAgentInterceptor())
25
+            .addInterceptor(createHttpLoggingInterceptor())
26
+            .build();
27
+
28
+    public static final ApiService service = new Retrofit.Builder()
29
+            .baseUrl(BASE_URL)
30
+            .client(client)
31
+            .addConverterFactory(GsonConverterFactory.create( new GsonBuilder().create()))
32
+            .build()
33
+            .create(ApiService.class);
34
+
35
+    private static Interceptor createUserAgentInterceptor() {
36
+        return new Interceptor() {
37
+
38
+            @Override
39
+            public Response intercept(Chain chain) throws IOException {
40
+                Request request = chain.request().newBuilder()
41
+                        .build();
42
+                return chain.proceed(request);
43
+            }
44
+
45
+        };
46
+    }
47
+
48
+    private static Interceptor createHttpLoggingInterceptor() {
49
+        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
50
+        loggingInterceptor.setLevel(BuildConfig.DEBUG ? HttpLoggingInterceptor.Level.BODY : HttpLoggingInterceptor.Level.NONE);
51
+        return loggingInterceptor;
52
+    }
53
+
54
+}

+ 17 - 0
app/src/main/java/ai/pai/lensman/box/ApiService.java

@@ -0,0 +1,17 @@
1
+package ai.pai.lensman.box;
2
+
3
+import retrofit2.Call;
4
+import retrofit2.http.GET;
5
+import retrofit2.http.Query;
6
+
7
+public interface ApiService {
8
+
9
+
10
+    @GET("session/new")
11
+    Call<String> startNewSession(
12
+            @Query("sessionId") String sessionId
13
+
14
+    );
15
+
16
+
17
+}